package com.example.csmall.product.service;

import com.example.csmall.product.pojo.dto.CategoryAddNewDTO;
import com.example.csmall.product.pojo.vo.CategoryListByParentIdVO;
import com.example.csmall.product.pojo.vo.CategoryListItemVO;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

@Transactional
public interface CategoryService {

    String[] ENABLE_TEXT={"禁用","启用"};

    /**
     * 添加分类
     * @param categoryAddNewDTO
     */
    void addNew(CategoryAddNewDTO categoryAddNewDTO);

    /**
     * 根据Id删除数据
     * @param id
     */
    void deleteById(Long id);

    /**
     * 启用分类
     * @param id 需要修改的分类ID
     */
    void setEnable(Long id);

    /**
     * 禁用分类
     * @param id
     */
    void setDisable(Long id);

    /**
     * 启用在导航中显示
     * @param id 需要修改的分类ID
     */
    void startDisplay(Long id);

    /**
     * 禁用在导航中显示
     * @param id
     */
    void forbiddenDisplay(Long id);

    /**
     * 根据父类别id查询列表
     *
     * @param parentId
     */
    List<CategoryListByParentIdVO> listByParentId(Long parentId);

    /**
     * 查询类别列表信息
     * @return
     */
    List<CategoryListItemVO> list();

    /**
     * 重建缓存
     */
    void rebuildCache();



}
